home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: New Zealand Amiga Users Group
/
New Zealand Amiga Users Group Newsdisk v25 (1989-08)(NZAmigaUG).zip
/
New Zealand Amiga Users Group Newsdisk v25 (1989-08)(NZAmigaUG).adf
/
StrucBrowser
/
sb.src.zoo
/
sbGraphics.c
< prev
next >
Wrap
C/C++ Source or Header
|
1988-06-22
|
5KB
|
143 lines
/* include not needed for Aztec C using provided makefile */
#include "sb:sb.h"
extern int level;
extern void PrPlanes(), PrRastPort2();
void PrBitMap(string, bitmap) char *string; struct BitMap *bitmap;
{
static struct StructData structdata[] = {
{ "-BytesPerRow", "UWORD", 12, INTSIZE },
{ "-Rows", "UWORD", 12, INTSIZE },
{ "-Flags", "UBYTE", 13, BYTESIZE },
{ "-Depth", "UBYTE", 13, BYTESIZE },
{ "-Pad", "UWORD", 12, INTSIZE },
{ " Planes[8]", "PLANEPTR", 5, PTRSIZE * 8}
};
int sum, choice = -1;
level++;
while (choice) {
sum = SetOptionText(string, structdata,
(APTR)bitmap, DATASIZE, 0);
if ((choice = GetChoice(DATASIZE)) == 6)
PrPlanes("BitPlanes belong to the BitMap", bitmap->Planes,
bitmap->Rows, bitmap->BytesPerRow);
}
level--;
}
void PrPlanes(string, planes, rows, bytes)
char *string; PLANEPTR planes[]; UWORD rows, bytes;
{
static struct StructData structdata[] = {
{" BitPlabe[0]", "PLANEPTR", 5, PTRSIZE },
{" BitPlabe[1]", "PLANEPTR", 5, PTRSIZE },
{" BitPlabe[2]", "PLANEPTR", 5, PTRSIZE },
{" BitPlabe[3]", "PLANEPTR", 5, PTRSIZE },
{" BitPlabe[4]", "PLANEPTR", 5, PTRSIZE },
{" BitPlabe[5]", "PLANEPTR", 5, PTRSIZE },
{" BitPlabe[6]", "PLANEPTR", 5, PTRSIZE },
{" BitPlabe[7]", "PLANEPTR", 5, PTRSIZE }
};
int sum, choice = -1;
level++;
while (choice) {
sum = SetOptionText(string, structdata,
(APTR)planes, DATASIZE, 0);
choice = GetChoice(8);
if (choice >= 1 && choice <= 8 && planes[choice - 1])
HexDump(structdata[choice - 1].membername,
planes[choice - 1], PTRSIZE, (long)(rows * bytes));
}
level--;
}
void PrRastPort(string, rastport) char *string; struct RastPort *rastport;
{
static struct StructData structdata[] = {
{ "(Layer", "struct Layer *)", 5, PTRSIZE },
{ " BitMap", "struct BitMap *", 5, PTRSIZE },
{ "-Area Ptrn", "USHORT *", 5, PTRSIZE },
{ "(TmpRas", "struct TmpRas *)", 5, PTRSIZE },
{ "(AreaInfo", "struct AreaInfo *)", 5, PTRSIZE },
{ "(GelsInfo", "struct GelsInfo *)", 5, PTRSIZE },
{ "-Mask", "UBYTE", 13, BYTESIZE },
{ "-FgPen", "BYTE", 3, BYTESIZE },
{ "-BgPen", "BYTE", 3, BYTESIZE },
{ "-AOlPen", "BYTE", 3, BYTESIZE },
{ "-DrawMode", "BYTE", 3, BYTESIZE },
{ "-AreaPtSize", "BYTE", 3, BYTESIZE },
{ "-linpatcnt", "BYTE", 3, BYTESIZE },
{ "-dummy", "BYTE", 3, BYTESIZE },
{ "(Flags", "USHORT", 12, INTSIZE },
{ "-LinePtrn", "USHORT", 12, INTSIZE }
};
int sum, choice = -1;
level++;
while (choice) {
sum = SetOptionText(string, structdata,
(APTR)rastport, DATASIZE, 0);
switch (choice = GetChoice(MAXGADG + 1)) {
case 2:
if (rastport->BitMap)
PrBitMap("The BitMap for the RastPort", rastport->BitMap);
break;
case MOREGADG:
PrRastPort2("More RastPort members", rastport, sum);
break;
}
}
level--;
}
void PrRastPort2(string, rastport, offset)
char *string; struct RastPort *rastport; int offset;
{
static struct StructData structdata[] = {
{"-cp_x", "SHORT", 2, INTSIZE },
{"-cp_y", "SHORT", 2, INTSIZE },
{" minterms[8]", "UBYTE", 0, BYTESIZE * 8},
{"-PenWidth", "SHORT", 2, INTSIZE },
{"-PenHeight", "SHORT", 2, INTSIZE },
{"(TextFont", "struct Font *)", 5, PTRSIZE },
{"-AlgoStyle", "UBYTE", 13, BYTESIZE },
{"(TxFlags", "UBYTE", 13, BYTESIZE },
{"-TxHeight", "UWORD", 12, INTSIZE },
{"-TxWidth", "UWORD", 12, INTSIZE },
{"-TxBaseLine", "UWORD", 12, INTSIZE },
{"-TxSpacing", "WORD", 2, INTSIZE },
{"-RP_User", "WORD", 2, INTSIZE },
{" wordreserved[7]", "UWORD", 0, INTSIZE * 7 },
{" longreserved[2]", "ULONG", 0, PTRSIZE * 2 },
{" reserved[8]", "UBYTE", 0, BYTESIZE * 8}
};
int sum, choice = -1;
level++;
while (choice) {
sum = SetOptionText(string, structdata,
(APTR)rastport, DATASIZE, offset);
switch (choice = GetChoice(DATASIZE)) {
case 3:
HexDump("Hexdump of RastPort minterms bytes",
&rastport->minterms[0], BYTESIZE, (long)BYTESIZE * 8);
break;
case 14:
HexDump("Hexdump of reserved RastPort words",
&rastport->wordreserved[0], INTSIZE, (long)INTSIZE * 7);
break;
case 15:
HexDump("Hexdump of reserved RastPort longwords",
&rastport->longreserved[0], PTRSIZE, (long)PTRSIZE * 2);
break;
case 16:
HexDump("Hexdump of reserved RastPort bytes",
&rastport->reserved[0], BYTESIZE, (long)BYTESIZE * 8);
break;
}
}
level--;
}